package org.liaohailong.library.widget.shopping.observable;

/**
 * Author: Victor
 * E-mail: liaohailong190@foxmail.com
 * Date: 2019/6/22 16:04
 * Description: 数据改变回调
 */
public interface IDataObservable {

    /**
     * @param observer 注册观察者
     */
    void setDataObserver(IShoppingDataObserver observer);

    /**
     * @return 获得观察者对象
     */
    IShoppingDataObserver getDataObserver();

    /**
     * 所有内容改变
     */
    void notifyDataSetChanged();

    /**
     * 部分内容改变
     *
     * @param position 起始位置
     * @param count    改变数量
     */
    void notifyItemRangeChanged(int position, int count);

    /**
     * 部分内容添加
     *
     * @param position 起始位置
     * @param count    改变数量
     */
    void notifyItemRangeInserted(int position, int count);

    /**
     * 部分内容移除
     *
     * @param position 起始位置
     * @param count    改变数量
     */
    void notifyItemRangeRemoved(int position, int count);
}
